#include <iostream>
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>

void remove_red(cv::Mat &a,cv::Mat &b){
    b=a;
    cv::cvtColor(b,b,cv::COLOR_BGR2HSV);
    for(int i=0;i<b.rows;i++)
        for(int j=0;j<b.cols;j++){
            cv::Vec3b &t=b.at<cv::Vec3b>(i,j);
            if((t[0]>=156||t[0]<=10)&&t[1]>=43&&t[2]>=46){
                t[0]=t[1]=0,t[2]=255;
            }
        }
    cv::cvtColor(b,b,cv::COLOR_HSV2BGR);
}

int main(){
    cv::Mat src;
    src = cv::imread("../BOCCHI_THE_ROCK.jpg");
    cv::imshow("Successful!!!",src);
    cv::Mat channel[3],blur,hsv,red,gray;
    cv::split(src,channel);
    cv::imshow("B",channel[0]);
    cv::imshow("G",channel[1]);
    cv::imshow("R",channel[2]);
    cv::cvtColor(src,gray,cv::COLOR_BGR2GRAY);
    cv::imshow("gray",gray);
    cv::cvtColor(src,hsv,cv::COLOR_BGR2HSV);
    cv::imshow("HSV",hsv);
    cv::GaussianBlur(src,blur,cv::Size(5,5),3,3);
    cv::imshow("GaussianBlur",blur);
    remove_red(blur,red);
    cv::imshow("Red",red);
    cv::waitKey();
}
